package org.group20.sunstruck;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.BitmapFontCache;
public class Shop {
public static boolean isActive = false;
int weaponUpgrade;
int hullUpgrade;
int shieldUpgrade;
int speedUpgrade;
BitmapFont font;
BitmapFontCache weaponCost;
BitmapFontCache hullCost;
BitmapFontCache shieldCost;
BitmapFontCache speedCost;
String weaponString;
String weaponStringNew;
String hullString;
String hullStringNew;
String shieldString;
String shieldStringNew;
String speedString;
String speedStringNew;
int weaponUpgradeCost;
int hullUpgradeCost;
int shieldUpgradeCost;
int speedUpgradeCost;
int weaponUpgradeCostOrig = 5000;
int hullUpgradeCostOrig = 5000;
int shieldUpgradeCostOrig = 5000;
int speedUpgradeCostOrig = 5000;
int scoreOriginal;
public int getScoreOriginal() {
return scoreOriginal;
}
public void setScoreOriginal(int scoreOriginal) {
this.scoreOriginal = scoreOriginal;
}
public Shop() {
weaponUpgradeCost = 5000;
hullUpgradeCost = 5000;
shieldUpgradeCost = 5000;
speedUpgradeCost = 5000;
resetUpgrades();
font = new BitmapFont();
}
public void update() {
font = new BitmapFont();
weaponCost = Game.getInstance().getGui().getWeaponCost();
hullCost = Game.getInstance().getGui().getHullCost();
shieldCost = Game.getInstance().getGui().getShieldCost();
speedCost = Game.getInstance().getGui().getSpeedCost();
weaponString = Game.getInstance().getGui().getWeaponString();
if (weaponStringNew == null)
weaponStringNew = Game.getInstance().getGui().getWeaponString();
hullString = Game.getInstance().getGui().getHullString();
if (hullStringNew == null)
hullStringNew = Game.getInstance().getGui().getHullString();
shieldString = Game.getInstance().getGui().getShieldString();
if (shieldStringNew == null)
shieldStringNew = Game.getInstance().getGui().getShieldString();
speedString = Game.getInstance().getGui().getSpeedString();
if (speedStringNew == null)
speedStringNew = Game.getInstance().getGui().getSpeedString();
if (Game.getInstance().getInput().isWeaponUpgraded()
&& Game.getInstance().getPlayer().getScore() >= weaponUpgradeCost) {
weaponUpgrade++;
if (weaponUpgrade == 1)
weaponUpgradeCostOrig = weaponUpgradeCost;
Game.getInstance()
.getPlayer()
.setScore(
Game.getInstance().getPlayer().getScore()
- weaponUpgradeCost);
weaponUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getWeaponLevel()
+ weaponUpgrade - 1);
float x = weaponCost.getX();
float y = weaponCost.getY();
weaponStringNew = "Current weapon level: "
+ (Game.getInstance().getPlayer().getWeaponLevel() + weaponUpgrade)
+ "\n" + "Upgrade cost: " + weaponUpgradeCost;
weaponCost.setMultiLineText(weaponStringNew, 0, 0);
weaponCost.setPosition(x, y);
}
if (Game.getInstance().getInput().isHullUpgraded()
&& Game.getInstance().getPlayer().getScore() >= hullUpgradeCost) {
hullUpgrade++;
if (hullUpgrade == 1)
hullUpgradeCostOrig = hullUpgradeCost;
Game.getInstance()
.getPlayer()
.setScore(
Game.getInstance().getPlayer().getScore()
- hullUpgradeCost);
hullUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getHullLevel() + hullUpgrade);
float x = hullCost.getX();
float y = hullCost.getY();
hullUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getHullLevel() + hullUpgrade);
hullStringNew = "Current hull level: "
+ (Game.getInstance().getPlayer().getHullLevel() + hullUpgrade)
+ "\n" + "Upgrade cost: " + hullUpgradeCost;
hullCost.setMultiLineText(hullStringNew, 0, 0);
hullCost.setPosition(x, y);
}
if (Game.getInstance().getInput().isShieldUpgraded()
&& Game.getInstance().getPlayer().getScore() >= shieldUpgradeCost) {
shieldUpgrade++;
if (shieldUpgrade == 1)
shieldUpgradeCostOrig = shieldUpgradeCost;
Game.getInstance()
.getPlayer()
.setScore(
Game.getInstance().getPlayer().getScore()
- shieldUpgradeCost);
shieldUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getShieldLevel() + shieldUpgrade);
float x = shieldCost.getX();
float y = shieldCost.getY();
shieldUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getShieldLevel() + shieldUpgrade);
shieldStringNew = "Current shield level: "
+ (Game.getInstance().getPlayer().getShieldLevel() + shieldUpgrade)
+ "\n" + "Upgrade cost: " + shieldUpgradeCost;
shieldCost.setMultiLineText(shieldStringNew, 0, 0);
shieldCost.setPosition(x, y);
}
if (Game.getInstance().getInput().isSpeedUpgraded()
&& Game.getInstance().getPlayer().getScore() >= speedUpgradeCost) {
speedUpgrade++;
if (speedUpgrade == 1)
speedUpgradeCostOrig = speedUpgradeCost;
Game.getInstance()
.getPlayer()
.setScore(
Game.getInstance().getPlayer().getScore()
- speedUpgradeCost);
speedUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getSpeedLevel() + speedUpgrade);
float x = speedCost.getX();
float y = speedCost.getY();
speedUpgradeCost = 5000 + 5000 * (Game.getInstance().getPlayer()
.getSpeedLevel() + speedUpgrade);
speedStringNew = "Current speed level: "
+ (Game.getInstance().getPlayer().getSpeedLevel() + speedUpgrade)
+ "\n" + "Upgrade cost: " + speedUpgradeCost;
speedCost.setMultiLineText(speedStringNew, 0, 0);
speedCost.setPosition(x, y);
}
if (Game.getInstance().getInput().isConfirmUpgrades()) {
upgradeEquipment();
resetUpgrades();
isActive = false;
}
if (Game.getInstance().getInput().isCancelUpgrades()) {
resetEquipment();
resetUpgrades();
}
// Pressed effect
// Maybe smarter way to do this so it does not setRegion every update
if (Game.getInstance().getInput().isWeaponPressed()) {
Game.getInstance()
.getGui()
.setWeaponTexture(
Game.getInstance().getGui()
.getTextureUpgWeaponPressed());
} else {
Game.getInstance()
.getGui()
.setWeaponTexture(
Game.getInstance().getGui().getTextureUpgWeapon());
}
if (Game.getInstance().getInput().isHullPressed()) {
Game.getInstance()
.getGui()
.setHullTexture(
Game.getInstance().getGui()
.getTextureUpgHullPressed());
} else {
Game.getInstance()
.getGui()
.setHullTexture(
Game.getInstance().getGui().getTextureUpgHull());
}
if (Game.getInstance().getInput().isShieldPressed()) {
Game.getInstance()
.getGui()
.setShieldTexture(
Game.getInstance().getGui()
.getTextureUpgShieldPressed());
} else {
Game.getInstance()
.getGui()
.setShieldTexture(
Game.getInstance().getGui().getTextureUpgShield());
}
if (Game.getInstance().getInput().isSpeedPressed()) {
Game.getInstance()
.getGui()
.setSpeedTexture(
Game.getInstance().getGui()
.getTextureUpgSpeedPressed());
} else {
Game.getInstance()
.getGui()
.setSpeedTexture(
Game.getInstance().getGui().getTextureUpgSpeed());
}
if (Game.getInstance().getInput().isResetPressed()) {
Game.getInstance()
.getGui()
.setResetTexture(
Game.getInstance().getGui()
.getTextureResetPressed());
} else {
Game.getInstance()
.getGui()
.setResetTexture(
Game.getInstance().getGui().getTextureReset());
}
}
private void resetUpgrades() {
weaponUpgrade = 0;
hullUpgrade = 0;
shieldUpgrade = 0;
speedUpgrade = 0;
weaponStringNew = null;
hullStringNew = null;
shieldStringNew = null;
speedStringNew = null;
}
private void upgradeEquipment() {
weaponString = weaponStringNew;
Game.getInstance().getGui().setWeaponString(weaponString);
hullString = hullStringNew;
Game.getInstance().getGui().setHullString(hullString);
shieldString = shieldStringNew;
Game.getInstance().getGui().setShieldString(shieldString);
speedString = speedStringNew;
Game.getInstance().getGui().setSpeedString(speedString);
Game.getInstance().getPlayer().addWeaponLevel(weaponUpgrade);
Game.getInstance().getPlayer().addHullLevel(hullUpgrade);
Game.getInstance().getPlayer().addShieldLevel(shieldUpgrade);
Game.getInstance().getPlayer().addSpeedLevel(speedUpgrade);
}
private void resetEquipment() {
Game.getInstance().getGui().setWeaponString(weaponString);
Game.getInstance().getGui().setHullString(hullString);
Game.getInstance().getGui().setShieldString(shieldString);
Game.getInstance().getGui().setSpeedString(speedString);
Game.getInstance().getPlayer().setScore(scoreOriginal);
weaponUpgradeCost = weaponUpgradeCostOrig;
hullUpgradeCost = hullUpgradeCostOrig;
shieldUpgradeCost = shieldUpgradeCostOrig;
speedUpgradeCost = speedUpgradeCostOrig;
}
public void setWeaponUpgradeCost(int upgCost) {
weaponUpgradeCost = upgCost;
}
public int getWeaponUpgradeCost() {
return weaponUpgradeCost;
}
public void setHullUpgradeCost(int upgCost) {
hullUpgradeCost = upgCost;
}
public int getHullUpgradeCost() {
return hullUpgradeCost;
}
public void setShieldUpgradeCost(int upgCost) {
shieldUpgradeCost = upgCost;
}
public int getShieldUpgradeCost() {
return shieldUpgradeCost;
}
public void setSpeedUpgradeCost(int upgCost) {
speedUpgradeCost = upgCost;
}
public int getSpeedUpgradeCost() {
return speedUpgradeCost;
}
}